package com.iknow.util;

import java.io.File;
import java.io.FileFilter;

public class IKFileUtil
{
  public static final String[] BOOK_SUFFIXS;
  private static final String tag = "com.iknow.util.IKFileUtil";

  static
  {
    String[] arrayOfString = new String[3];
    arrayOfString[0] = ".kep";
    arrayOfString[1] = ".epub";
    arrayOfString[2] = ".txt";
    BOOK_SUFFIXS = arrayOfString;
  }

  public static void deleteAll(File paramFile)
  {
    if (!(paramFile.exists()));
    while (true)
    {
      return;
      if (!(paramFile.isFile()))
        break;
      paramFile.delete();
    }
    File[] arrayOfFile = paramFile.listFiles();
    int i = 0;
    while (true)
    {
      while (i >= arrayOfFile.length)
        paramFile.delete();
      deleteAll(arrayOfFile[i]);
      ++i;
    }
  }

  public static File[] filterBookFile(String paramString)
  {
    return filterFile(new File(paramString), BOOK_SUFFIXS);
  }

  public static File[] filterFile(File paramFile, String[] paramArrayOfString)
  {
    File[] arrayOfFile;
    if ((paramFile == null) || (!(paramFile.canRead())))
      arrayOfFile = new File[0];
    while (true)
    {
      return arrayOfFile;
      arrayOfFile = paramFile.listFiles(new FileFilter(paramArrayOfString)
      {
        public boolean accept()
        {
          int i;
          String[] arrayOfString;
          int k;
          if ((paramFile.isFile()) && (paramFile.canRead()))
          {
            arrayOfString = this.val$suffixs;
            int j = arrayOfString.length;
            k = 0;
            if (k >= j)
              i = 0;
          }
          while (true)
          {
            while (true)
            {
              while (true)
              {
                return i;
                String str = arrayOfString[k];
                if (!(paramFile.getName().toLowerCase().endsWith(str)))
                  break;
                i = 1;
              }
              ++k;
            }
            i = 0;
          }
        }
      });
    }
  }

  // ERROR //
  public static java.io.ByteArrayOutputStream loadInputStream(java.io.InputStream paramInputStream)
  {
    // Byte code:
    //   0: aload_0
    //   1: ifnonnull +9 -> 10
    //   4: aconst_null
    //   5: astore 6
    //   7: aload 6
    //   9: areturn
    //   10: new 73	java/io/ByteArrayOutputStream
    //   13: dup
    //   14: invokespecial 74	java/io/ByteArrayOutputStream:<init>	()V
    //   17: astore_1
    //   18: sipush 1024
    //   21: newarray byte
    //   23: astore 7
    //   25: aload_0
    //   26: aload 7
    //   28: invokevirtual 80	java/io/InputStream:read	([B)I
    //   31: istore 8
    //   33: iload 8
    //   35: ifgt +17 -> 52
    //   38: aload_0
    //   39: ifnull +7 -> 46
    //   42: aload_0
    //   43: invokevirtual 83	java/io/InputStream:close	()V
    //   46: aload_1
    //   47: astore 6
    //   49: goto -42 -> 7
    //   52: aload_1
    //   53: aload 7
    //   55: iconst_0
    //   56: iload 8
    //   58: invokevirtual 87	java/io/ByteArrayOutputStream:write	([BII)V
    //   61: goto -36 -> 25
    //   64: astore 4
    //   66: ldc 12
    //   68: aload 4
    //   70: invokestatic 93	com/iknow/util/LogUtil:e	(Ljava/lang/Object;Ljava/lang/Object;)V
    //   73: aload_0
    //   74: ifnull -28 -> 46
    //   77: aload_0
    //   78: invokevirtual 83	java/io/InputStream:close	()V
    //   81: goto -35 -> 46
    //   84: astore 5
    //   86: ldc 12
    //   88: aload 5
    //   90: invokestatic 93	com/iknow/util/LogUtil:e	(Ljava/lang/Object;Ljava/lang/Object;)V
    //   93: goto -47 -> 46
    //   96: astore_2
    //   97: aload_0
    //   98: ifnull +7 -> 105
    //   101: aload_0
    //   102: invokevirtual 83	java/io/InputStream:close	()V
    //   105: aload_2
    //   106: athrow
    //   107: astore_3
    //   108: ldc 12
    //   110: aload_3
    //   111: invokestatic 93	com/iknow/util/LogUtil:e	(Ljava/lang/Object;Ljava/lang/Object;)V
    //   114: goto -9 -> 105
    //   117: astore 9
    //   119: ldc 12
    //   121: aload 9
    //   123: invokestatic 93	com/iknow/util/LogUtil:e	(Ljava/lang/Object;Ljava/lang/Object;)V
    //   126: goto -80 -> 46
    //
    // Exception table:
    //   from	to	target	type
    //   18	33	64	java/lang/Exception
    //   52	61	64	java/lang/Exception
    //   77	81	84	java/io/IOException
    //   18	33	96	finally
    //   52	61	96	finally
    //   66	73	96	finally
    //   101	105	107	java/io/IOException
    //   42	46	117	java/io/IOException
  }

  // ERROR //
  public static int writeFile(java.io.InputStream paramInputStream, File paramFile)
  {
    // Byte code:
    //   0: aload_1
    //   1: ifnonnull +10 -> 11
    //   4: bipush 255
    //   6: istore 9
    //   8: iload 9
    //   10: ireturn
    //   11: aload_1
    //   12: invokevirtual 99	java/io/File:getParentFile	()Ljava/io/File;
    //   15: astore_2
    //   16: aload_2
    //   17: ifnull +15 -> 32
    //   20: aload_2
    //   21: invokevirtual 35	java/io/File:exists	()Z
    //   24: ifne +8 -> 32
    //   27: aload_2
    //   28: invokevirtual 102	java/io/File:mkdirs	()Z
    //   31: pop
    //   32: aload_1
    //   33: invokevirtual 35	java/io/File:exists	()Z
    //   36: ifeq +8 -> 44
    //   39: aload_1
    //   40: invokevirtual 41	java/io/File:delete	()Z
    //   43: pop
    //   44: aconst_null
    //   45: astore_3
    //   46: aload_1
    //   47: invokevirtual 105	java/io/File:createNewFile	()Z
    //   50: pop
    //   51: new 107	java/io/FileOutputStream
    //   54: dup
    //   55: aload_1
    //   56: invokespecial 109	java/io/FileOutputStream:<init>	(Ljava/io/File;)V
    //   59: astore 13
    //   61: sipush 1024
    //   64: newarray byte
    //   66: astore 15
    //   68: iconst_0
    //   69: istore 16
    //   71: aload_0
    //   72: aload 15
    //   74: invokevirtual 80	java/io/InputStream:read	([B)I
    //   77: istore 17
    //   79: iload 17
    //   81: bipush 255
    //   83: if_icmpne +28 -> 111
    //   86: aload 13
    //   88: ifnull +8 -> 96
    //   91: aload 13
    //   93: invokevirtual 110	java/io/FileOutputStream:close	()V
    //   96: aload_0
    //   97: ifnull +7 -> 104
    //   100: aload_0
    //   101: invokevirtual 83	java/io/InputStream:close	()V
    //   104: iload 16
    //   106: istore 9
    //   108: goto -100 -> 8
    //   111: iload 16
    //   113: iload 17
    //   115: iadd
    //   116: istore 16
    //   118: aload 13
    //   120: aload 15
    //   122: iconst_0
    //   123: iload 17
    //   125: invokevirtual 111	java/io/FileOutputStream:write	([BII)V
    //   128: goto -57 -> 71
    //   131: astore 14
    //   133: aload 14
    //   135: astore 5
    //   137: aload 13
    //   139: astore_3
    //   140: ldc 12
    //   142: aload 5
    //   144: invokestatic 117	com/iknow/util/StringUtil:objToString	(Ljava/lang/Object;)Ljava/lang/String;
    //   147: invokestatic 122	com/iknow/util/Loger:e	(Ljava/lang/String;Ljava/lang/String;)V
    //   150: aload_3
    //   151: ifnull +7 -> 158
    //   154: aload_3
    //   155: invokevirtual 110	java/io/FileOutputStream:close	()V
    //   158: aload_0
    //   159: ifnull +7 -> 166
    //   162: aload_0
    //   163: invokevirtual 83	java/io/InputStream:close	()V
    //   166: bipush 255
    //   168: istore 9
    //   170: goto -162 -> 8
    //   173: astore 19
    //   175: ldc 12
    //   177: aload 19
    //   179: invokestatic 117	com/iknow/util/StringUtil:objToString	(Ljava/lang/Object;)Ljava/lang/String;
    //   182: invokestatic 122	com/iknow/util/Loger:e	(Ljava/lang/String;Ljava/lang/String;)V
    //   185: goto -89 -> 96
    //   188: astore 18
    //   190: ldc 12
    //   192: aload 18
    //   194: invokestatic 117	com/iknow/util/StringUtil:objToString	(Ljava/lang/Object;)Ljava/lang/String;
    //   197: invokestatic 122	com/iknow/util/Loger:e	(Ljava/lang/String;Ljava/lang/String;)V
    //   200: goto -96 -> 104
    //   203: astore 11
    //   205: ldc 12
    //   207: aload 11
    //   209: invokestatic 117	com/iknow/util/StringUtil:objToString	(Ljava/lang/Object;)Ljava/lang/String;
    //   212: invokestatic 122	com/iknow/util/Loger:e	(Ljava/lang/String;Ljava/lang/String;)V
    //   215: goto -57 -> 158
    //   218: astore 10
    //   220: ldc 12
    //   222: aload 10
    //   224: invokestatic 117	com/iknow/util/StringUtil:objToString	(Ljava/lang/Object;)Ljava/lang/String;
    //   227: invokestatic 122	com/iknow/util/Loger:e	(Ljava/lang/String;Ljava/lang/String;)V
    //   230: goto -64 -> 166
    //   233: astore 6
    //   235: aload_3
    //   236: ifnull +7 -> 243
    //   239: aload_3
    //   240: invokevirtual 110	java/io/FileOutputStream:close	()V
    //   243: aload_0
    //   244: ifnull +7 -> 251
    //   247: aload_0
    //   248: invokevirtual 83	java/io/InputStream:close	()V
    //   251: aload 6
    //   253: athrow
    //   254: astore 8
    //   256: ldc 12
    //   258: aload 8
    //   260: invokestatic 117	com/iknow/util/StringUtil:objToString	(Ljava/lang/Object;)Ljava/lang/String;
    //   263: invokestatic 122	com/iknow/util/Loger:e	(Ljava/lang/String;Ljava/lang/String;)V
    //   266: goto -23 -> 243
    //   269: astore 7
    //   271: ldc 12
    //   273: aload 7
    //   275: invokestatic 117	com/iknow/util/StringUtil:objToString	(Ljava/lang/Object;)Ljava/lang/String;
    //   278: invokestatic 122	com/iknow/util/Loger:e	(Ljava/lang/String;Ljava/lang/String;)V
    //   281: goto -30 -> 251
    //   284: astore 6
    //   286: aload 13
    //   288: astore_3
    //   289: goto -54 -> 235
    //   292: astore 4
    //   294: aload 4
    //   296: astore 5
    //   298: goto -158 -> 140
    //
    // Exception table:
    //   from	to	target	type
    //   61	79	131	java/lang/Exception
    //   118	128	131	java/lang/Exception
    //   91	96	173	java/io/IOException
    //   100	104	188	java/io/IOException
    //   154	158	203	java/io/IOException
    //   162	166	218	java/io/IOException
    //   46	61	233	finally
    //   140	150	233	finally
    //   239	243	254	java/io/IOException
    //   247	251	269	java/io/IOException
    //   61	79	284	finally
    //   118	128	284	finally
    //   46	61	292	java/lang/Exception
  }
}